/**
 * <p>NASGUI的操作异常类</p>
 * @author: liuxiaofeng
 * @date: 2014-2-12 下午01:50:53
 * @Project:NASGUI(NAS服务管理系统)
 * @Copyright: 2012 MacroSAN Technologies Co., Ltd. All rights reserved. 
 * @version V1.0
 */
package org.qs.webservice.exception;

import org.apache.log4j.Logger;
import org.qs.webservice.util.IReadUtils;


/**
 * 
 * <p>NASGUI的操作异常类</p>
 * @author liuxiaofeng
 * @date 2014-4-16 上午10:41:51
 */
public class QSReadException {
	
	/**log对象引用该类*/
	private static Logger logger = Logger.getLogger("org.iread.webservice.exception.QSReadException.class" );
	
	/**
	 * 
	 * <p>输出异常</p>
	 * @param: e  错误堆栈
	 * @param: asg  参数
	 * @author: xusaike 
	 * @date: 2014-3-19 上午11:00:02
	 * @modifier: 无
	 * @modify-date: 无
	 * @checker: wuting
	 * @check-date: 2014-3-10
	 */
	public static void printf(Exception e,Object... asg){
		//将参数json化并输出
		QSReadException.jsonString(asg);
		//输出异常堆栈
		logger.error("Exception:",e);
	}
	
	/**
	 * 
	 * <p>异常信息输出</p>
	 * @param e 错误堆栈
	 * @param asg 参数
	 * @author liuxiaofeng 
	 * @date 2014-4-16 上午10:42:27
	 * @modifier 无
	 * @modify-date 无
	 * @checker wuting
	 * @check-date 2014-4-16 上午10:43:19
	 */
	public static void printf(Throwable e,Object... asg){
		//将参数json化并输出
		QSReadException.jsonString(asg);
		//输出异常堆栈
		logger.error("Exception:",e);
	}
	
	/**
	 * 
	 * <p>参数gson化并输出</p>
	 * @param: ob
	 * @author: xusaike 
	 * @date: 2014-3-19 上午11:01:58
	 * @modifier: 无
	 * @modify-date: 无
	 * @checker: wuting
	 * @check-date: 2014-3-10
	 */
	public static void jsonString(Object ob){
		
		if(ob==null){
			//logger.error("null");
			return;
		}
		try {
			
			Object[] obs =(Object[]) ob;
			//将各个参数Json化并输出
			int temp=0;
			for(Object o:obs){
				temp++;
				if(temp==1){
					logger.error(" [info] "+o);
				}else{
					logger.error(" [info] "+IReadUtils.beanToJson(o));

				}
							}
		} catch (Exception e) {
			//json化失败
			logger.error(" [Error] Error while converting  part of the data type in gson ");
			logger.error("Exception:",e);
		}
	}	
}